1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for stateful ad hoc checkbox selection in graphical user interfaces.
2. Description of Related Art
The role of checkboxes in user interface design is problematic for users making ad hoc selections of computer data. The typical use of checkboxes is to allow users to select multiple items in a list. Prior to this invention, users generally selected multiple data items using checkboxes in one of several ways, including, for example: ‘select all,’ ‘clear all,’ ‘toggle all,’ ‘click individual items,’ and ‘select all in a group.’
While each of these methods allows selection of multiple data items, each is problematic. Viewed from an efficiency perspective, selection is especially problematic in cases where users make ad hoc choices from a checkbox list. Consider the hypothetical example of a 100-item list, in which the user desires to select 57 of the items. The hypothetical list can be described as “ad hoc” in that no preexisting logical grouping is sufficient to allow selection of items with a single user action. To select the 57 items, a user could ‘select all,’ then clear 43 individual items by clicking each, resulting in a total of 44 clicks to select the 57 items. Or the user could select 43 items the user does not want, then ‘toggle all,’ thus selecting the preferred items, again with a total of 44 clicks. Alternatively, the user could click 57 items by single-clicking each item desired. If there is a ‘select all in groups’ available in the user's GUI, then the number of clicks is dependent on a predefined logical system. In any event, the user would not be able to select 57 ad hoc items with a single click-and-drag operation.
Ad hoc selection is important because users have their own reasons for selecting data in a list; their preferences cannot always be predicted. Moreover, in most cases user preferences in selecting should not be limited to predefined logical groupings. Any system that limits the user to preset groupings undermines the goal of allowing maximal user flexibility, which is the point of checkbox lists in the first place. While each of the above methods in combination allows for ad hoc selection, each is unable to provide an efficient means of selecting data in an ad hoc fashion.
The ‘select all’ option includes too many items when the user seeks to make ad hoc selections. Obviously, the ‘clear all’ option selects too few, since no selection is made. The ‘toggle all’ requires a number of individual clicks and is dependent on preexisting selections. Likewise, the ‘click individual items’ option requires individual clicks for each item.
The ‘select all in group’ option has its own inefficiencies. First, ‘select all in group’ requires development effort to determine preexisting groups of checkbox items.
Second, regardless of how well the groups are formulated, ad hoc selection still requires single clicking after a group is selected. That is, the ‘select all in group’ option provides access to structured means for selection of data, which is the opposite of ad hoc selection. While the ‘select all in group’ option could shorten the number of clicks to make a particular set of ad hoc selections, that is not its purpose. Moreover, selecting by group can in some cases actually increase the number of clicks required to choose ad hoc items, depending on how closely the groups mirror the choices intended by the user.
Some attempts have been made to deal with these efficiency problems. For example, the invention described in IBM's U.S. Pat. No. 6,104,398, “Fast and efficient means for grouped object selection and deselection,” attempts to overcome inefficiencies in item lists requiring users to select or deselect individual items. The '398 patent proposed a means for aggregating checkbox and other data items into predetermined groups so that a single operation could select multiple items. While this was a useful step forward, the method of the '398 patent required such groupings to be determined on a predefined basis. The problem of ad hoc selection of both contiguous and non-contiguous data in a list remained to be solved. Moreover, the method of the '398 patent required the instantiation of new controls external to the checkbox list itself, or in the alternative that some checkboxes control others, thus expanding the number of items in a list. A method that constrained selection controls to the minimum necessary to complete the task was still needed.
The minimum number of selection controls needed to complete an ad hoc selection is equal to the number of items in a list. In other words, there is no need to instantiate controls external to a list if the list is to be chosen in an ad hoc fashion. Fundamentally, the problem with checkbox selection prior to this invention was in dealing with ad hoc selection of data. That is, in any list of computerized data relying on checkboxes, users may need to select both contiguous and non-contiguous data. To select on an ad hoc basis means either checking individual items or relying on groups structured in an a priori fashion. A system that addresses these problems should allow users to select among items with the minimum number of operations necessary. For the purpose of a checkbox list, that minimum number of operations to select one or more items on an ad hoc basis is a single click-and-drag operation. Prior to this invention, no method has existed to allow for ad hoc selection of checkbox items with a single click-and-drag operation.
In fact, structured groupings substitute a priori judgments made by those who define the structure for judgments made by users, potentially imposing new inefficiencies. Selecting a structured group may require de-selection by the user. Ad hoc selection, then, does not imply a lack of structure in selections, although such may be the case, but instead that users impose their own structure on information. The user's definition of the user's intended list structure is generally by definition more efficient than judgments external to the user. It is effectively an unreliable accident if a predefined grouping aids ad hoc selection.
The present invention is a significant departure from previous approaches. For example, the “Official Guidelines for User Interface Developers and Designers” issued by Microsoft (Redmond, Wash.: Microsoft, 1999) specifies that checkbox controls are selected on an individual basis:                “When the user clicks a checkbox with the primary mouse button, either in the checkbox or on its label, the checkbox is selected and its state is toggled. When the user presses the mouse button, the input focus moves to the control and the checkbox displays its pressed appearance. Like option buttons and other controls, if the user moves the pointer off the checkbox or its label while pressing the mouse button, the control's appearance returns to its original state and retains the input focus. The state of the checkbox does not change until the mouse button is released. To change a control's setting, the pointer must be over the checkbox or its label when the user releases the mouse button.”        
In summary, this means that for checkbox controls relying on mouseclicks, checkbox selection occurs on an individual basis. The user must click on each item s/he wishes to select; the state of selections is not transferred from one checkbox to another. If the mouse moves off the checkbox, the checkbox reverts to its original state and the user cannot continue to select by hovering over other checkbox items. The limitations of prior approaches, then, are traceable to their reliance on mouseclicks as such.